Trace capture refers to the process of collecting data from an operating electronic system and storing the data, referred to as trace data, within a memory. Trace capture techniques are used to collect different types of trace data such as signals from an electronic circuit or signals obtained from a processor. Signals collected from an electronic circuit can reveal signal transitions occurring under selected operating states or conditions. Signals collected from a processor can reveal execution flow of a program being executed by the processor.
Conventional trace capture systems store trace data in response to detecting a trigger event. When the trigger event is detected, a set of trace data is captured and stored within the trace buffer. This approach, however, provides only a partial view of the state of the electronic system as it fails to store system data that is generated prior to the occurrence of the trigger event. The system data generated prior to the trigger event, though often of significant value in terms of diagnosing a problem within the electronic system, goes uncollected.
Another disadvantage of conventional trace capture systems is their inability to process data effectively when a plurality of trigger events are detected in close temporal proximity to one another. Some trace capture systems, for example, must be re-armed after detecting each trigger event. As such, the temporal relationship between multiple trigger events that occur too close in time is not preserved or documented, particularly as the trace capture system is unable to respond to the second or third trigger event, for example.